Minutes, IBIS Quality Committee 07 Apr 2015 11:00-12:00 EST (08:00-09:00 PST) ROLL CALL eASIC: * David Banas Ericsson: Anders Ekholm Intel: Michael Mirmak * Eugene Lim IO Methodology * Lance Wang Signal Integrity Software * Mike LaBonte Teraspeed Labs: * Bob Ross Everyone in attendance marked by * NOTE: "AR" = Action Required. -----------------------MINUTES --------------------------- Mike LaBonte conducted the meeting. Call for IBIS related patent disclosures: - None Call for opens: - Bob: We need to file a BUG for the AMI reserved word issue. - We have a revised parser contract. - I am proposing - Mike: The two of should have call. ARs: - Bob draft IBISCHK 6.0.2 development requirements. - Done. - Bob: It will be 6.1.0 actually. - Mike recover percent format specifications in spreadsheet. - No new progress. - Mike add comments to CMPNT, DLY, MSPEC sections. - No new progress. - Lance add comments to EBD section. - No new progress. - Bob add comments to CIRCUIT section. - No new progress. PyIBIS: - Mike: David showed this at DesignCon 2014. - We would be interested in a DLL sanity checker or new AMI reference simulator. - David show a Python Notebook web page. - David: The original development was to serve a particular use. - It is more general now. - Lance: Can this create DLLs? - David: No it is for testing existing models. - Testing requires some computing environment. - That could be MatLab or, in this case, Python. - David: This is on the PyPy website. - It is easily installed. - The source code is at GitHub. - David explained the Notebook. - David: Designers usually have a high level math tool. - They usually have optimum coefficients for filters, etc. - In AMI they can set only integer values, not actual coefficients. - PyIBIS-AMI has very little code. - It wraps the DLL in Python. - It provides data structures to making working with the DLL simpler. - AMI_Init has many parameters that we don't want to type each time. - The structure is updated and passed to the wrapper. - This gives MatLab-like power in Python. - Python dynamic documentation is attached to objects. - The object can be queried to get the documentation. - PyIBIS-AMI is a package with module. - Modules are imported, not packages. - Every module has a __doc__ attribute that can be printed. - The AMIModelInitializer method has the data structure for Init. - The AMIModel requires only the DLL file. - The AMIModelInitializer is passed data settings. - As a minimum the root_name must be set. - Bob: Is the eASIC model provided as part of the package? - David: No. - David showed an impulse response. - David: Python commands are used to plot this. - Mike: Where did the impulse response come from? - David: The AMIModelInitializer class has defaults. - David: This sample TX model has taps. - We add these in Python and set them to 1 and initialize again. - Now the tap blips are visible in the impulse response. - Mike: Was AMI_Close called? - David: That is called by a destructor. - David showed nested loop code to try many tap values. - David: We now have the tap coefficients/weights for each integer parameter value. - We can calculate tap sums for each case to check. - The plot of sums of weights shows sums of both 1.0 and 1.1. - The model has to constrain the taps. - David showed formulas for calculating tap weight constraints. - David: Tap 0 and the others are calculated differently. - David showed Python code to find the slope of post1 as a function of the other taps. - The slopes of the tap are identical. - Designers need to know what X(n) to pass in to get a certain B(n). - David showed the process for determine all required values. - Mike: Is there also an AMI_GetWave() wrapper? - David: Yes Meeting ended: 12:04 Next meeting April 14